import("//clang-tools-extra/clangd/quality/gen_decision_forest.gni")
import("//llvm/utils/unittest/unittest.gni")

gen_decision_forest("DecisionForestRuntimeTest") {
  model = "decision_forest_model"
  filename = "DecisionForestRuntimeTest"
  cpp_class = "::ns1::ns2::test::Example"
}

unittest("ClangdTests") {
  configs += [ "//llvm/utils/gn/build:clang_code" ]
  deps = [
    ":DecisionForestRuntimeTest",
    "//clang-tools-extra/clang-tidy",
    "//clang-tools-extra/clangd",
    "//clang-tools-extra/clangd:features",
    "//clang-tools-extra/clangd/refactor/tweaks",
    "//clang/lib/AST",
    "//clang/lib/Basic",
    "//clang/lib/Format",
    "//clang/lib/Frontend",
    "//clang/lib/Index",
    "//clang/lib/Lex",
    "//clang/lib/Sema",
    "//clang/lib/Serialization",
    "//clang/lib/Tooling",
    "//clang/lib/Tooling/Core",
    "//clang/lib/Tooling/Inclusions",
    "//clang/lib/Tooling/Syntax",
    "//llvm/include/llvm/Config:llvm-config",
    "//llvm/lib/Support",
    "//llvm/lib/Testing/Support",
  ]
  include_dirs = [
    ".",
    "//clang-tools-extra/clangd",

    # To pick up the generated inc files.
    "$target_gen_dir/../../clangd/tool",

    # To pick up the generated DecisionForestRuntimeTest.h file.
    target_gen_dir,
  ]
  sources = [
    "ASTSignalsTests.cpp",
    "ASTTests.cpp",
    "Annotations.cpp",
    "BackgroundIndexTests.cpp",
    "CallHierarchyTests.cpp",
    "CanonicalIncludesTests.cpp",
    "ClangdLSPServerTests.cpp",
    "ClangdTests.cpp",
    "CodeCompleteTests.cpp",
    "CodeCompletionStringsTests.cpp",
    "CollectMacrosTests.cpp",
    "CompileCommandsTests.cpp",
    "CompilerTests.cpp",
    "ConfigCompileTests.cpp",
    "ConfigProviderTests.cpp",
    "ConfigYAMLTests.cpp",
    "DecisionForestTests.cpp",
    "DexTests.cpp",
    "DiagnosticsTests.cpp",
    "DraftStoreTests.cpp",
    "DumpASTTests.cpp",
    "ExpectedTypeTest.cpp",
    "FSTests.cpp",
    "FeatureModulesTests.cpp",
    "FileDistanceTests.cpp",
    "FileIndexTests.cpp",
    "FindSymbolsTests.cpp",
    "FindTargetTests.cpp",
    "FormatTests.cpp",
    "FuzzyMatchTests.cpp",
    "GlobalCompilationDatabaseTests.cpp",
    "HeaderSourceSwitchTests.cpp",
    "HeadersTests.cpp",
    "HoverTests.cpp",
    "IncludeCleanerTests.cpp",
    "IndexActionTests.cpp",
    "IndexTests.cpp",
    "InlayHintTests.cpp",
    "JSONTransportTests.cpp",
    "LSPBinderTests.cpp",
    "LSPClient.cpp",
    "LoggerTests.cpp",
    "ModulesTests.cpp",
    "ParsedASTTests.cpp",
    "PathMappingTests.cpp",
    "PreambleTests.cpp",
    "PrintASTTests.cpp",
    "ProjectAwareIndexTests.cpp",
    "QualityTests.cpp",
    "RIFFTests.cpp",
    "RenameTests.cpp",
    "SelectionTests.cpp",
    "SemanticHighlightingTests.cpp",
    "SemanticSelectionTests.cpp",
    "SerializationTests.cpp",
    "SourceCodeTests.cpp",
    "SymbolCollectorTests.cpp",
    "SymbolInfoTests.cpp",
    "SyncAPI.cpp",
    "TUSchedulerTests.cpp",
    "TestFS.cpp",
    "TestIndex.cpp",
    "TestTU.cpp",
    "TestWorkspace.cpp",
    "TidyProviderTests.cpp",
    "TypeHierarchyTests.cpp",
    "URITests.cpp",
    "XRefsTests.cpp",
    "support/CancellationTests.cpp",
    "support/ContextTests.cpp",
    "support/FunctionTests.cpp",
    "support/MarkupTests.cpp",
    "support/MemoryTreeTests.cpp",
    "support/PathTests.cpp",
    "support/TestTracer.cpp",
    "support/ThreadingTests.cpp",
    "support/TraceTests.cpp",
    "tweaks/AddUsingTests.cpp",
    "tweaks/AnnotateHighlightingsTests.cpp",
    "tweaks/DefineInlineTests.cpp",
    "tweaks/DefineOutlineTests.cpp",
    "tweaks/DumpASTTests.cpp",
    "tweaks/DumpRecordLayoutTests.cpp",
    "tweaks/DumpSymbolTests.cpp",
    "tweaks/ExpandAutoTypeTests.cpp",
    "tweaks/ExpandMacroTests.cpp",
    "tweaks/ExtractFunctionTests.cpp",
    "tweaks/ExtractVariableTests.cpp",
    "tweaks/ObjCLocalizeStringLiteralTests.cpp",
    "tweaks/PopulateSwitchTests.cpp",
    "tweaks/RawStringLiteralTests.cpp",
    "tweaks/RemoveUsingNamespaceTests.cpp",
    "tweaks/ShowSelectionTreeTests.cpp",
    "tweaks/SwapIfBranchesTests.cpp",
    "tweaks/TweakTesting.cpp",
    "tweaks/TweakTests.cpp",
  ]
}
